본문으로 건너뛰기

State와 Props의 차이점

React에서 State와 Props는 컴포넌트를 구성하는 중요한 요소입니다. 이 두 가지는 서로 다른 역할을 가지고 있으며, 이를 제대로 이해하는 것이 React를 효율적으로 사용하는 데 필수적입니다. 아래에서는 State와 Props의 차이점을 구체적인 예시와 함께 설명하겠습니다.

State와 Props란 무엇인가?

State

State는 컴포넌트의 내부 데이터를 관리합니다. State는 동적으로 변경될 수 있으며, 이러한 변경은 컴포넌트의 재렌더링을 유발합니다. State는 일반적으로 사용자 입력, 요청 결과, 또는 기타 이벤트에 따라 변할 수 있는 데이터를 저장합니다.

예시 코드

import React, { useState } from 'react';

function Counter() {
const [count, setCount] = useState(0);

return (
<div>
<p>현재 카운트: {count}</p>
<button onClick={() => setCount(count + 1)}>증가</button>
</div>
);
}

위 코드에서 count는 State로 정의되었으며, setCount 함수를 통해 값이 변경됩니다. 버튼을 클릭할 때마다 count가 증가하고, 이는 컴포넌트를 재렌더링합니다.

Props

Props는 컴포넌트 간에 데이터를 전달하는 방법입니다. Props는 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 역할을 합니다. Props는 읽기 전용이며, 자식 컴포넌트에서 변경할 수 없습니다.

예시 코드

function Greeting(props) {
return <h1>안녕하세요, {props.name}!</h1>;
}

function App() {
return <Greeting name="React" />;
}

위 코드에서 Greeting 컴포넌트는 name이라는 Prop을 받아 화면에 출력합니다. App 컴포넌트에서 Greeting 컴포넌트로 name 값을 전달하고 있습니다.

State와 Props의 차이점

  1. 변경 가능성:

    • State는 컴포넌트 내부에서 변경 가능합니다.
    • Props는 부모 컴포넌트에서 전달되며, 자식 컴포넌트에서는 읽기 전용입니다.
  2. 데이터 소유권:

    • State는 데이터를 소유하고 관리합니다.
    • Props는 데이터를 전달받아 표시합니다.
  3. 용도:

    • State는 사용자 입력, 네트워크 요청 결과 등 변경 가능한 데이터를 저장합니다.
    • Props는 부모 컴포넌트로부터 자식 컴포넌트로 데이터나 함수를 전달합니다.

주의할 점

  • State를 사용할 때는 불필요한 상태를 만들지 않도록 주의합니다. 불필요한 상태는 성능 저하를 초래할 수 있습니다.
  • Props는 변경할 수 없으므로, 데이터를 변경해야 하는 경우에는 부모 컴포넌트에서 해당 작업을 처리하고 새로운 Props를 전달해야 합니다.
  • State와 Props의 이름은 명확하게 지정하여, 코드의 가독성과 유지보수성을 높이는 것이 중요합니다.

더 알아보기

내용 요약과 다음 주제

State는 컴포넌트 내부에서 관리되고 변경 가능한 데이터인 반면, Props는 부모 컴포넌트에서 자식 컴포넌트로 전달되는 읽기 전용 데이터입니다. 이를 적절히 활용하면 React 애플리케이션을 효과적으로 구성할 수 있습니다. 다음 주제인 불필요한 Props 복사와 연산 예시에서는 Props를 효율적으로 사용하여 성능을 최적화하는 방법을 살펴보겠습니다.